<?php
namespace plugin\ky_black\app\admin\model;

use support\Model;

class BlackCardRecharge extends Model
{
    protected $table = 'ky_black_card_recharge';
    protected $primaryKey = 'recharge_id';
    
    protected $fillable = [
        'recharge_type',    // 充值类型：个人/机构
        'org_id',           // 机构ID
        'recharge_no',      // 充值单号
        'black_card_id',    // 黑卡ID
        'black_card_no',    // 黑卡卡号
        'amount',           // 充值金额
        'payment_method',   // 支付方式：对公/其他
        'payment_account',  // 付款账号
        'payment_bank',     // 付款银行
        'payment_time',     // 付款时间
        'verify_status',    // 核实状态：0-未核实 1-已核实
        'verify_time',      // 核实时间
        'effect_time',      // 生效时间
        'status',          // 状态：充值中/成功/失败
        'remark'           // 备注
    ];

    protected $casts = [
        'amount' => 'decimal:2',
        'verify_status' => 'boolean',
        'payment_time' => 'datetime',
        'verify_time' => 'datetime',
        'effect_time' => 'datetime',
        'created_at' => 'datetime',
        'updated_at' => 'datetime'
    ];

    /**
     * 关联黑卡
     */
    public function blackCard()
    {
        return $this->belongsTo(BlackCard::class, 'black_card_no', 'card_no');
    }

    /**
     * 关联机构
     */
    public function organization()
    {
        return $this->belongsTo(Organization::class, 'org_id', 'org_id');
    }

    /**
     * 生成充值单号
     */
    public static function generateRechargeNo()
    {
        return 'RC' . date('YmdHis') . rand(1000, 9999);
    }
} 